from flask_wtf import Form
from flask_wtf import TextField
from flask_wtf import PasswordField
from flask_wtf import SelectMultipleField
from flask_wtf import widgets
from flask_wtf import EqualTo

from app.validators import Required
from app.validators import length


class LoginForm(Form):
    """
    Representa el formulario para el login de la aplicacion
    """
    
    nombre = TextField('Nombre de usuario', [Required(), length(min=0, max=50)])
    contrasenha = PasswordField('Clave', [Required(), length(min=0, max=120)])


class IngresarUsuarioForm(Form):
    """
    Representa el formulario para el ingreso del usuario al cual se le quiere cambiar la
    contrasenha
    """
    
    nombre = TextField('Nombre de usuario', [Required(), length(min=0, max=50)])

    
class CambiarContrasenhaForm(Form):
    """
    Representa el formulario para realizar el cambio de contrasenha de un usuario
    """
    
    pregunta = TextField('Pregunta')
    respuesta = TextField('Respuesta', [Required(), length(min=0, max=80)])
    contrasenha = PasswordField('Clave', [Required(), length(min=0, max=120)])
    confirm = PasswordField('Repita la clave', [
      Required(),
      EqualTo('contrasenha', message='Las claves no son iguales')
      ])
    

class ElegirProyectoForm(Form):
    proyectos =  SelectMultipleField('Proyectos:', [Required()], coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.RadioInput())
    